每次在建立新的專案的時候,終端機最後一段都會出現:
run bundle exec spring binstub --all
* bin/rake: Spring inserted
* bin/rails: Spring inserted
又或者,常常在clone一個專案下來時:在執行db:migrate 或是 bundle install指令時卡住;
通常這時候,只要在終端機輸入spring stop
,然後再重新執行前述指令,一切就能正常執行了。
根據官方文件記載如下:
Spring 是在 Ruby on Rails 4.1 版時才加入應用程式預加載器
Spring 會預加載你的 Rails 應用程式。保持應用程式在背景執行,如此一來在執行 Rails 命令時:如跑測試、rake、migrate 時,不用每次都重啟 Rails 應用程式,加速你的開發流程。
總而言之,就是讓開發人員能夠在寫code的時候,即時地在頁面上看到修改的成果。
真的是很貼心的設計呢!
打開你的Gemfile會看到,當你建立一個新的專案時,spring 已經被預設放在開發環境(development)裡了,
所以你可以直接執行bundle
就可以啦!
# ...略...
group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
# ...略...
那 Spring 有什麼特色呢?這次我們換來看看github上的資料吧!
比較需要注意的是第三點:
雖然Spring會預先幫你載入專案內所有的東西,並且動態的讀取你寫入的程式碼,
但是當你修改是像設定檔之類的東西,就需要重新啟動server才有用。
姆...這個部分,就請大家直接參考Spring頁面上的內容,
自己動手做一次吧!